Image generation system and information storage medium

ABSTRACT

There are provided an image generation system and information storage medium which can generate an image of a simple object with reduced processing load, the brightness of the simple object being variable according to the amount of light sent from a light source and received by the simple object The image generation system comprises a light-source simple processing section ( 114 ) for performing a light-source simple processing relative to the simple object. The light-source simple processing section ( 114 ) performs computation for information relating to at least one of the brightness and color on primitive surfaces constructing the simple object, based on an angle difference between a line-of-sight vector of a virtual camera and a light vector from the light source The primitive surfaces are set to have first and second color information, and information relating to the color of the primitive surfaces is computed by interpolation computation based the first and second color information and the information of at least one of the brightness and color of one of the primitive surfaces.

TECHNICAL FIELD

[0001] The present invention relates to an image generation system andinformation storage medium.

BACKGROUND ART

[0002] In the prior art, there is known an image generation system whichcan generate an image viewable from a given viewpoint in an object spacethat is a virtual three-dimensional space Such an image generationsystem is very popular as a system which can implement a so-calledvirtual reality. If the image generation system is for a racing game, aplayer can enjoy a three-dimensional game by controlling and running aracing car (or object) in the object space to compete with the otherracing cars controlled by the other players or computer.

[0003] In such an image generation system, it is an important technicalsubject that a more realistic image is generated to improve the virtualreality for the players.

[0004] For example, the brightness of an object surface is calculatedbased on the reflection of light from a light source on the objectsurface, and a light source processing is made to set the coloraccording to the brightness. Thus, the object may be shaded to provide amore realistic three-dimensional image. However, this increases theprocessing load in the image generation.

[0005] On the other hand, the image generation system of the prior artwas subjected to various improvements for reducing the processing timein generation of the image, since view images must be generated in realtime within the virtual three-dimensional space in accordance withvarious changing positions of a moving object.

[0006] For example, an image representing a tree located in thebackground of a scene may be generated by mapping the texture of thetree onto a simple object consisting of one plate-like polygon, ratherthan formation of a three-dimensional object constructed by a number ofpolygons. In such a manner, the number of polygons to be processed canbe reduced, resulting in great reduction of the processing time.

[0007] However, such a simple object was generated without beingsubjected to any light source processing leading to increase of theprocessing time since it was used to reduce the processing time.Therefore, the tree or the like constructed by the simple object wouldalways be displayed with the same tone and brightness irrespectively ofthe positional relationship between the tree and the light source.Inherently, the brightness on the object surface depends on thereflection of light which was variable according to the angle betweenthe direction of the light and each of the polygon surfaces constructingthe object. Since the simple object is always displayed with the samebrightness irrespectively of the incident angle of the light, anunnatural image will be generated with less reality.

DISCLOSURE OF THE INVENTION

[0008] It is therefore an objective of the present invention to providean image generation system and information storage medium which cangenerate an image of a simple object in which the brightness is variableaccording to the amount of light sent from a light source and receivedby the simple object, with reduced processing load.

[0009] (1) According to the present invention, there is provided animage generation system for generating an image, comprising:

[0010] means which performs a light-source simple processing, theprocessing being necessary to change at least one of the brightness andcolor of a surface of a simple object according to the amount of lightthat is sent from a light source and received by the surface of thesimple object; and

[0011] means which generates an image of the simple object based on aresult of the light-source simple processing.

[0012] The present invention also provides a computer-usable programembodied on an information storage medium or in a carrier wave,comprising information (or program) for implementing (or executing) theabove described means.

[0013] The simple object is one that is simply formed to reduce theprocessing load in the image generation. The simple object has one ormore primitive surfaces. The simple object can be formed by one or morepolygons disposed parallel to one another

[0014] In general, the light source processing is necessary to computethe brightness of a surface of the simple object relative to the lightfrom the light source and to provide a color according to the brightnesson the surface.

[0015] According to the present invention, the light-source simpleprocessing is made to change at least one of the brightness and color ofthe surface of the simple object. Thus, the brightness of the primitivesurfaces constructing the simple object can be changed according to theamount of received light. Therefore, a more realistic image can begenerated without artificiality even if the positional relationshipbetween the simple object and the light source is changed.

[0016] (2) the present invention further provides an image generationsystem for generating an image, comprising:

[0017] means which performs computation to obtain information relatingto at least one of the brightness and color of a primitive surfaceconstructing a simple object, based on an incident angle of a lightvector from a light source; and

[0018] means which generates an image of the simple object based on theinformation relating to at least one of the brightness and color of theprimitive surface constructing the simple object.

[0019] The present invention further provides a computer-usable programembodied on an information storage medium or in a carrier wave,comprising information (or program) for implementing (or executing) theabove described means

[0020] The simple object is one that is simply formed to reduce theprocessing load in the image generation. The simple object has one ormore primitive surfaces. The simple object can be formed by one or morepolygons disposed parallel to one another.

[0021] According to the present invention, the brightness of theprimitive surface constructing the simple object can be changed based onan incident angle of the light vector from the light source. Even thoughthe positional relationship between the simple object and the lightsource is changed, a more realistic image can be generated withoutartificiality.

[0022] (3) In each of the image generation system and the programembodied on an information storage medium or in a carrier wave accordingto the present invention, computation for obtaining information relatingto at least one of the brightness and color of the primitive surfaceconstructing the simple object may be performed based on an angledifference between a line-of-sight vector of a virtual camera and alight vector from the light source.

[0023] The line-of-sight vector of the virtual camera means a vectorparallel to the line-of-sight of the virtual camera or a gazingdirection from a viewpoint of the virtual camera toward a viewing object

[0024] In the light source processing for setting the brightnessaccording to the amount of received light, the angle difference betweenthe emitting direction of the light from the light source and the normaldirection of the primitive surface is usually important.

[0025] However, the processing load will be increased by calculating thenormal direction of each primitive surface.

[0026] With the simple object, there is often to change the orientationof the simple object to avoid any appearance defect due to thesimplification. So that the processing load will increase if the normaldirection of each primitive surface is computed after transforming intothe viewpoint coordinate system as in the conventional light sourceprocessing

[0027] According to the present invention, however, the line-of-sightvector of the virtual camera is used to compute the information relatingto at least one of the brightness and color of the primitive surfaceconstructing the simple object, in place of the orientation of eachprimitive surface. Therefore, it is not required to calculate the normalvector for each primitive surface and transformation into the viewpointcoordinate system is not necessary. As a result, the processing load cangreatly be reduced.

[0028] (4) In each of the image generation system and the programembodied on an information storage medium or in a carrier wave,according to the present invention, the angle difference may be computedbased on two-axis components in both the line-of-sight vector of thevirtual camera and the light vector from the light source.

[0029] The computation of the angle difference based on two-axiscomponents in both the line-of-sight vector of the virtual camera andthe light vector of the light source is made based on X- andZ-components, for example. In other words, the line-of-sight and lightvectors are projected onto a two-axis plane (e.g , X-Z plane) todetermine an angle difference in the two-axis plane.

[0030] If it is required to consider the space only in the horizontaldirection for the light source processing, the computation of the angledifference based only on the two-axis components can reduce theprocessing load.

[0031] (5) Each of the image generation system and the program embodiedon an information storage medium or in a carrier wave, according to thepresent invention may further comprise:

[0032] means which rotates the simple object such that a normal vectorof the primitive surfaces constructing the simple object becomesparallel to the line-of-sight vector of the virtual camera.

[0033] If the orientation of the primitive surface constructing thesimple object is set to be parallel to the line-of-sight direction ofthe virtual camera, the angle difference coincides with the angledifference of the conventional light source processing. Therefore, thesame advantage relating to the setting of the brightness of the simpleobject surface as in the conventional light source processing can beobtained by a simplified processing.

[0034] (6) In each of the image generation system and the programembodied on an information storage medium or in a carrier wave,according to the present invention, the light source may be a source ofparallel rays.

[0035] If the light vector from the light source spreads in the radialdirection, it is required to compute the orientation of the lightaccording to the position of each primitive surface.

[0036] If the light rays are parallel as in the present invention,however, the orientation of the light is the same for all the primitivesurfaces constructing the simple object. Therefore, it is not requiredto compute the orientation of the light according to the position ofeach primitive surface. This reduces the processing load.

[0037] (7) In each of the image generation system and the programembodied on an information storage medium or in a carrier wave,according to the present invention, information relating to at least oneof the brightness and color of a primitive surface constructing onesimple object among a plurality of simple objects may be used togenerate an image of a primitive surface of another simple object amongthe plurality of simple objects.

[0038] For example, the image may be generated by using the sameinformation relating to the brightness or color for all the simpleobjects. Alternatively, the simple objects may be divided into aplurality of groups, and for each group, the same information relatingto the brightness or color may be used.

[0039] According to the present invention, the information relating tothe brightness or color of one of the simple objects can be used togenerate images of the other simple objects. Thus, the amount ofcomputation can be reduced.

[0040] (8) In each of the image generation system and the programembodied on an information storage medium or in a carrier wave,according to the present invention, the simple object or primitivesurfaces constructing the simple object may be set to have first andsecond color information; and information relating to the color of theprimitive surfaces may be computed by interpolation computation based onthe first and second color information and information relating to atleast one of the brightness and color of one of the primitive surfaces.

[0041] The information relating to the colors of the primitive surfacesmay be R, G and B values in the primitive surfaces. The interpolationcomputation may include the blending processing of the first and secondcolor information using the blending coefficient obtained from theinformation relating to the brightness, for example.

[0042] The first and second color information may be set for each of thesimple objects or for each primitive surface constructing the simpleobject.

[0043] When the light source processing is performed, single colorinformation is usually set for each object or each primitive surface,and the coloring degree of that color is regulated according to thebrightness of the light from the light source.

[0044] On the contrary, the present invention sets the first and secondcolor information relative to the simple object or the primitivesurfaces constructing the simple object, and computes the colorinformation of the primitive surfaces constructing the simple objectbased on the first and second color information and the informationrelating to at least one of the brightness and color of one of theprimitive surfaces constructing the simple object.

[0045] According to the present invention, any color having optimumbrightness can be placed on the surface of the simple object within arange defined by the first and second color information.

[0046] Alternatively, the first color information may indicate thedarkest state or a state in which no light is received while the secondcolor information indicating the brightest state or a state in which themaximum amount of light is received by the simple object or theprimitive surfaces constructing the simple object. Thus, variable colorcan be represented within the range between the darkest and brightestcolors, according to the amount of light sent from the light source andreceived by the simple object.

[0047] (9) The present invention further provides an image generationsystem for generating an image, wherein a simple object or a primitivesurface constructing the simple object are set to have first and secondcolor information; and the image generation system comprising:

[0048] means which computes color information of the primitive surfaceby interpolation computation performed by using the first and secondcolor information according to the amount of light that is sent from alight source and received by the primitive surface: and

[0049] means which generates an image of the simple object based on thecolor information of the primitive surfaces,

[0050] The present invention further provides a computer-usable programembodied on an information storage medium or in a carrier wave,comprising information (or program) for implementing (or executing) theabove described means,

[0051] The information relating to the colors of the primitive surfacemay be R, G and B values in the primitive surfaces The interpolationcomputation may include blending processing of the first and secondcolor information using a given blending coefficient according to theamount of light sent from the light source and received by the primitivesurfaces constructing the simple object, for example.

[0052] The first and second color information may be set for each of thesimple objects or for each primitive surface constructing the simpleobject.

[0053] When the light source processing is performed, single colorinformation is usually set for each object or each primitive surface,and the coloring degree of that color is regulated according to thebrightness of the light from the light source.

[0054] On the contrary, the present invention sets the first and secondcolor information relative to the simple object or the primitivesurfaces constructing the simple object and computes the colorinformation of the primitive surfaces based on the first and secondcolor information and the amount of light received by the primitivesurfaces.

[0055] According to the present invention, any color having optimumbrightness can be placed on the surface of the simple object within arange defined by the first and second color information.

[0056] Alternatively, the first color information may indicate thedarkest state or a state in which no light is received while the secondcolor information indicating the brightest state or a state in which themaximum amount of light is received by the simple object or theprimitive surfaces constructing the simple object. Thus, variable colorcan be represented within the range between the darkest and brightestcolors, according to the amount of light sent from the light source andreceived by the simple object.

BRIEF DESCRIPTION OF THE DRAWINGS

[0057]FIG. 1 is a block diagram of an image generation system accordingto the embodiment of the present invention.

[0058]FIG. 2 illustrates the relationship between the brightness of anobject surface and the light from the light source

[0059]FIG. 3 illustrates a step of using a simple object to form a treeaccording to the embodiment.

[0060]FIG. 4 shows a game scene in which the simple objects of theembodiment are displayed.

[0061]FIG. 5 shows another game scene in which the simple objects of theembodiment are displayed.

[0062]FIGS. 6A and 6B illustrate the relationship between such aplate-like polygon (or single polygon, or board polygon) as shown inFIGS. 4 and 5 and the light from the light source.

[0063]FIG. 7 illustrates the relationship between the plate-like polygon(or single polygon, or board polygon) being the simple object of theembodiment and the line-of-sight vector of a virtual camera.

[0064]FIG. 8 is an angle difference θ between the line-of-sight vectorof the virtual camera and the light vector of the light source.

[0065]FIG. 9 illustrates a technique of the embodiment that sets a colorreflecting the amount of light received by the polygons constructing thesimple object.

[0066]FIGS. 10A and 10B illustrate a coloring when a texture is mappedon a simple object.

[0067]FIG. 11 is a flowchart illustrating a light-source simpleprocessing according to the embodiment.

[0068]FIG. 12 is a block diagram showing hardware configuration forimplementing the embodiment of the present invention.

[0069]FIGS. 13A, 13B and 13C show various types of systems to which theembodiment can be applied.

BEST MODE FOR CARRYING OUT THE INVENTION

[0070] An embodiment of the present invention is described below, withreference to the accompanying drawings. Note that the description belowconcerns an example where this embodiment is applied to a racing game,but it should be obvious that this invention is not limited thereto andit can equally well be applied to various other types of game.

[0071] 1. Configuration

[0072]FIG. 1 shows a block diagram of this embodiment. In this figure,this embodiment may comprise at least a processing section 100 (or aprocessing section 100 with a storage section 170 or a processingsection 100 with a storage section 170 and an information storage medium180) Each of the other blocks (e.g., operating section 160, displaysection 190, sound output section 192, portable information storagedevice 194 and communications section 196) may take any suitable form.

[0073] The processing section 100 performs various processings forcontrol of the entire system, commands to the respective blocks in thesystem, game processing, image processing, sound processing and so on.The function thereof can be implemented through any suitable hardwaremeans such as various processors (CPU, DSP and so on) or ASIC (gatearray or the like) or a given program (or game program).

[0074] The operating section 160 is used to input operational data fromthe player and the function thereof can be implemented through anysuitable hardware means such as a lever, a button, a housing or thelike.

[0075] The storage section 170 provides a working area for theprocessing section 100, communications section 174 and others. Thefunction thereof can be implemented by any suitable hardware means suchas RAM or the like.

[0076] The information storage medium (which may be a computer-usablestorage medium) 180 stores information including programs, data andothers. The function thereof can be implemented through any suitablehardware means such as optical memory disk (CD or DVD), magneto-opticaldisk (MO), magnetic disk, hard disk, magnetic tape, memory (ROM) or thelike. The processing section 100 performs various processings in thepresent invention (or this embodiment) based on the information that hasbeen stored in this information storage medium 180. In other words, theinformation storage medium 180 stores various pieces of information (orprograms and data) for implementing (or executing) the means of thepresent invention (or this embodiment) which are particularlyrepresented by the blocks included in the processing section 100.

[0077] Part or the whole of the information stored in the informationstorage medium 180 will be transferred to the storage section 170 whenthe system is initially powered on. The information stored in theinformation storage medium 180 includes at least one of a program codefor performing the processing according to the present invention, imagedata, sound data, shape data of displayed objects, table data, listdata, information for instructing the processing according to thepresent invention, information for implementing the processing accordingto the instructions, and so on.

[0078] The display section 190 is to output an image generated accordingto this embodiment and the function thereof can be implemented by anysuitable hardware means such as CRT, LCD or HMD (Head-Mount Display).

[0079] The sound output section 192 is to output a sound generatedaccording to this embodiment and the function thereof can be implementedby any suitable hardware means such as speaker.

[0080] The portable information storage device 194 is to store theplayer's personal data and save data and may be take any suitable formsuch as memory card, portable game machine and so on.

[0081] The communications section 196 performs various controls forcommunication between the game system and any external device (e.g.,host machine or other image generation system) The function thereof canbe implemented through any suitable hardware means such as various typesof processors or communication ASIS or according to any suitableprogram.

[0082] The program or data for executing the means in the presentinvention (or this embodiment) may be delivered from an informationstorage medium included in a host machine (or server) to the informationstorage medium 180 through a network and the communications section 196.The use of such an information storage medium in the hose device (orserver) falls within the scope of the invention.

[0083] The processing section 100 further comprises a game processingsection 110, an image generation section 140 and a sound generationsection 150.

[0084] The game processing section 110 performs various processes suchas coin (or charge) reception, setting of various modes, gameproceeding, setting of scene selection, determination of the positionand rotation angle (about X-, Y- or Z-axis) of an object, movement ofthe object (motion processing), determination of the view point andvisual line (direction), arrangement of the object within the objectspace, hit checking, computation of the game results (or scores),processing for causing a plurality of players to play in a common gamespace, various game computations including game-over and otherprocesses, based on operational data from the operating section 160 andaccording to the personal data, saved data and game program from theportable information storage device 194.

[0085] The image generation section 140 is to perform various imageprocessings according to the commands or the like from the gameprocessing section 110. The sound generation section 150 is to performvarious sound processings according to the commands and the like fromthe game processing section 110.

[0086] All the functions of the image and sound processing sections 140,150 can be implemented by any suitable hardware means or according tothe program Alternatively, these functions can be implemented by boththe hardware means and program.

[0087] The game processing section 110 further comprises amovement/action computation section 112 and a light-source simpleprocessing section 114.

[0088] The movement/action computation section 112 is to calculate theinformation of movement for objects such as motorcars and so on(positional and rotation angle data) and the information of action forthe objects (positional and rotation angle data relating to the parts inthe objects) For example, the movement/action computation section 112may cause the objects to move and act based on the operational datainputted by the player through the operating section 160 and accordingto the game program.

[0089] More particularly, the movement/action computation section 114may determine the position and rotational angle of the object, forexample, for each one frame ({fraction (1/60)} seconds) . For example,it is now assumed that the position of the object for (k-1) frame isPMk-1, the velocity is VMk-1, the acceleration is Amk-1, time for oneframe is Δt. Thus, the position PMk and velocity VMk of the object for kframe can be determined by the following formulas (1) and (2):

PMk=PMk−1+VMk−1×Δt   (1)

VMk=VMk−1+Amk−1×Δt   (2)

[0090] The light-source simple processing section 114 performs thelight-source simple processing required to change at least one of thebrightness and color of a surface of a simple object, according to theamount of light received by the simple object. Alternatively, thelight-source simple processing section 114 may calculate the informationrelating to at least one of the brightness and color on the primitivesurfaces constructing the simple object, based on the incident angle ofthe light vector from the light source.

[0091] Moreover, the light-source simple processing section 114 maycalculate the information relating to at least one of the brightness andcolor on the primitive surfaces constructing the simple object, based onthe angle difference between the line-of-sight vector of the virtualcamera and the light vector of the light source. In addition, thelight-source simple processing section 114 maybe constructed tocalculate the angle difference based on two-axis components in theline-of-sight and light vectors of the virtual camera and light source.

[0092] Furthermore, the light-source simple processing section 114 mayset first and second color information relative to the simple object orthe primitive surfaces constructing the simple object and performinterpolation computation based on the information relating to at leastone of the brightness and color determined for one of the primitivesurfaces, the interpolation computation being then used to calculate theinformation relating to the color of the primitive surfaces.

[0093] The image generation section 140 comprises a geometry processing(or three-dimensional coordinate calculating) section 142 and a drawing(or rendering) portion 146.

[0094] The geometry processing section 142 performs various geometryprocessings (three-dimensional coordinate calculation) such ascoordinate transformation, clipping, perspective transformation or lightsource calculation.

[0095] The drawing section 146 draws an object based on the data of theobject after geometry processed (or perspectively transformed) and atexture stored in a texture buffer. The drawing section 146 alsogenerates a simple object based on the results of the light-sourcesimple processing section 114.

[0096] The image generation system of the present invention may bededicated for a single-player mode in which only a single player canplay the game or may have a multi-player mode in which a plurality ofplayers can play the game.

[0097] If a plurality of players play the game, only a single terminalmay be used to generate game images and sounds to be provided to all theplayers. Alternatively, a plurality of terminals interconnected througha network (transmission lien or communication line) may be used in thepresent invention.

[0098] 2. Features of this embodiment

[0099] The relationship between the brightness of an object and thelight from the light source is first described in connection with FIG.2.

[0100] Referring now to FIG. 2, reference numeral 200 designates thesurface of the object; 210 a light vector from a light source; and 220the normal vector on the object When the light source is in the normaldirection on the object surface and when it is considered that theenergy of light incident on the object surface per unit area becomesmaximum, the energy of light diffusely reflected from the incident pointalso becomes maximum. It may thus be considered that the brightness onthe object surface depends on an angle β included between the normalvector on the object and the light vector entering the object surface.In other words, the brightness on the object surface will increase asthe value of the angle β approaches 180 degrees.

[0101] Based on such a relationship, the light source processing isperformed to calculate the brightness on the surface of the object andto place a color corresponding to the calculated brightness on theobject surface.

[0102] Thus, the normal vector on each of the polygon faces must becalculated while the optimum color for each polygon must be calculatedbased on the angle β between the normal vector on each of the polygonsand the light. Thus, the ordinary technique will have an increased loadof calculation for light source processing.

[0103] However, this embodiment can provide the same advantage as in thelight source processing with reduction of the calculation load, byperforming the light-source simple processing as will be describedbelow.

[0104] First of all, the structure of a simple object usable in thisembodiment will be described. FIG. 3 illustrates the structure of a treewhich is one simple object usable in this embodiment. To reduce theprocessing load in the image generation by reducing the number ofpolygons, this embodiment will not form a three-dimensional object ortree, but will generate the image of the tree by mapping a plate-like(or single or board) polygon 310 onto a texture 320 for the tree (see330).

[0105]FIGS. 4 and 5 exemplify game scenes in which the simple objectsare displayed according to this embodiment. FIGS. 6A and B respectivelyillustrate the relationship between the plate-like (or single or board)polygon in each of FIGS. 4 and 5 and the light from the light source.

[0106] In FIGS. 6A and 6B, reference numeral 340 denotes a plate-like(or single or board) polygon as viewed from one side (which actually hasno thickness); 350 denotes a normal vector on the plate-like (or singleor board) polygon: and 360 denotes the light from the light source. Theside of the plate-like polygon from which the normal vector extends is afront face on which the texture of the tree is mapped.

[0107]FIG. 6A illustrates the light 360 is vertically sent to the frontsurface of the plate-like (or single or board) polygon 340. This meansthat the maximum amount of light is received by the tree. In such acase, the tree is represented by generating an image having thebrightest color, as shown in FIG. 4.

[0108]FIG. 6B illustrates the light 360 is vertically sent to the backsurface of the plate-like (or single or board) polygon 340. This meansthat the amount of light received by the tree is minimum. In this case,the darkest image of the tree is generated as shown in FIG. 5.

[0109] If the amount of light received by the tree is between themaximum and minimum values, interpolation computation will be carriedout to generate an image of the tree having its middle brightness usingthe brightest and darkest colors.

[0110] In such a manner, this embodiment provides the same effect as inthe ordinary light source processing by changing the brightness of thesimple object according to the amount of received light, but itstechnique is different from that of the ordinary light sourceprocessing.

[0111] More particularly, this embodiment will not calculate the normalvector on each of the polygon faces constructing the object as in theordinary light source processing, but will calculate the informationrelating to at least one of the brightness and color on the primitivesurfaces constructing the simple object primitive surfaces constructingthe simple object, based on the angle difference between the line-ofsight vector of the virtual camera and the light vector of the lightsource.

[0112]FIG. 7 illustrates the relationship between the plate-like (orsingle or board) polygon being a simple object according to thisembodiment and the line of-sight vector of the virtual camera.

[0113] In FIG. 7, the line-of-sight vector 420 of the virtual camera (orthe line -of-sight direction in the virtual camera) and a plurality ofplate-like (or single or board) polygons P1-P5 all of which are simpleobjects are projected Onto a plane XZ. HV1-HV5 are normal vectors forthe respective plate-like (or single or board) polygons P1-P5 and allparallel to the line-of-sight direction. This is because theorientations of the plate-like (or single or board) polygons P1-P5 areso set that they are always parallel to the line-of-sight direction.

[0114] If the simple objects such as plate-like polygons are used andwhen the line-of-sight direction is changed, the back faces of theplate-like (or single or board) polygons P1-P5 will be exposed. To avoidsuch a problem, it is required to regulate the orientations of thesimple objects. Since the orientations of the plate-like polygons areparallel to the line-of-sight direction in this embodiment, all theorientations of the plate-like polygons can be determined if theline-of-sight direction is determined. Thus, the calculation for theorientations of the plate-like polygons can be greatly reduced.

[0115] Since the normal vectors on the plate-like polygons are parallelto the line-of-sight vector (in the opposite orientation), thelight-source simple processing can be carried out using theline-of-sight vector in place of the normal vectors.

[0116]FIG. 8 illustrates an angle difference θ between a line-of-sightvector 420 in the virtual camera and a light vector 430 from the lightsource.

[0117] As described in connection with FIG. 2, it may be considered thatthe brightness on the object surface depends on the angle β createdbetween the normal vector on that object and the light vector enteringthe object surface In this embodiment, however, the normal vector on aplate-like polygon is parallel to the line-of-sight vector (in theopposite orientation). Therefore, this embodiment determines acoefficient α representing the brightness on each of the polygon facesconstructing the simple object, based on the angle difference θ betweenthe line-of-sight vector 420 of the virtual camera and the light vector430 from the light source. For example, such a coefficient may bedetermined from α=θ/π.

[0118]FIG. 9 illustrates a technique of setting a color reflecting theamount of light received by the polygons constructing the simple object.

[0119] In this embodiment, first color information Cp1 (Rp1, Gp1, Bp1)and second color information Cp2 (Rp2, Gp2, Bp2) have been set relativeto each of the plate-like (or single or board) polygons constructing thesimple object. Preferably, the first color information Cp1 (Rp1, Gp1,Bp1) 510 is a color most weakly influenced by the light while the secondcolor information Cp2 (Rp2, Gp2, Bp2) is another color most stronglyinfluenced by the light.

[0120] Using the coefficient a representing the brightness on thepolygon face determined based on the angle difference θ, the first colorinformation Cp1 (Rp1, Gp1, Bp1) and the second color information Cp2(Rp2, Gp2, Bp2) are blended to calculate the color information Cp (Rp,Gp, Bp) according to the following formulas (1)-(4):

Cp=Cp1·α+Cp2 (1−α)   (1)

Rp=Rp1·α+Rp2 (1−α)   (2)

Gp=Gp1·α+Gp2 (1−α)   (3)

Bp=Bp1·α+Bp2 (1−α)   (4)

[0121] At θ=0, the brightness is maximum. At θ=π (α−1), the brightnessis minimum. Thus, the color information Cp (Rp, Gp, Bp) of the optimumpolygon can be calculated according to the angle difference θ within therange between the color most weakly influenced by the light and thecolor most strongly influenced by the light.

[0122]FIGS. 10A and 10B illustrate a coloring on mapping a texture on asimple object.

[0123] A texture buffer 610 of FIG. 10A has stored information of a treetexture to be mapped on a plate-like (or single or board) polygon. It isnow assumed that the texture color of a pixel Puv is Ct (Rt, Ct, Bt) asshown by 620.

[0124]FIG. 10B illustrates a state that the plate-like (or single orboard) polygon on which the texture of tree shown in FIG. 10A is mappedis written in a frame buffer 630. The color placed on each pixel in thisframe buffer 630 is a color to be displayed on the screen. Referencenumeral 640 represents that the color mapped by the texture color of apixel Puv and displayed on the screen is Cd (Rd, Cd, Bd).

[0125] This color Cd (Rd, Gd, Bd) is calculated using the texture colorCt (Rt, Gt, Bt) of a pixel Puv and the color information Cp (Rp, Gp, Bp)of the optimum polygon determined in FIG. 9 according to the followingformula (5):

Cd (Rd, Gd, Bd)=Ct (Rt, Gt, Bt)×Cp (Rp, Gp, Bp)   (5)

[0126] In such a manner, the coloring can be changed and displayedaccording to the amount of light received when the texture is mapped.

[0127]FIG. 11 is a flowchart illustrating a light-source simple.processing according to this embodiment.

[0128] Steps S10-S40 show a process for a given polygon.

[0129] As described in connection with FIG. 8, a difference θ betweenthe orientation of the line-of-sight vector and the orientation of thelight vector from the light source is first determined (step S10).

[0130] A coefficient of brightness a for a polygon is then determinedfrom 0 (step S20).

[0131] The determined coefficient a is then used to complement the firstand second color information for determining a color as described inconnection with FIG. 9 (step S30).

[0132] The determined color is used to perform the texture mapping andto draw a polygon (step S40). When the texture mapping is to beperformed, it is preferred that the drawing is carried out after thecoloring value has been determined using the determined color asdescribed in connection with FIGS. 10A and 10B.

[0133] 3. Hardware configuration

[0134] Hardware configuration for implementing this embodiment is shownin FIG. 12.

[0135] A main processor 900 operates to execute various processings suchas game processing, image processing, sound processing and otherprocessings according to a program stored in a CD (information storagemedium) 982, a program transferred through a communication interface 990or a program stored in a RON (information storage medium) 950.

[0136] A coprocessor 902 is to assist the processing of the mainprocessor 900 and has a product-sum operator and analog divider whichcan perform high-speed parallel calculation to execute a matrix (orvector) calculation at high speed. If a physical simulation for causingan object to move or act (motion) requires the matrix calculation or thelike, the program running on the main processor 900 instructs (or asks)that processing to the coprocessor 902.

[0137] A geometry processor 904 is to perform a geometry processing suchas coordinate transformation, perspective transformation, light sourcecalculation, curve formation or the like and has a product- sum operatorand analog divider which can perform high-speed parallel calculation toexecute a matrix (or vector) calculation at high speed. For example, forthe coordinate transformation, perspective transformation or lightsource calculation, the program running on the main processor 900instructs that processing to the geometry processor 904.

[0138] A data expanding processor 906 is to perform a decoding processfor expanding image and sound compressed data or a process foraccelerating the decoding process in the main processor 900. In theopening, intermission, ending or game scene, thus, an MPEG compressedanimation may be displayed. The image and sound data to be decoded maybe stored in the storage devices including ROM 950 and CD 982 or mayexternally be transferred through the communication interface 990.

[0139] A drawing processor 910 is to draw or render an objectconstructed by primitive surfaces such as polygons or curved faces athigh speed. On drawing the object, the main processor 900 uses a DMAcontroller 970 to deliver the object data to the drawing processor 910and also to transfer a texture to a texture storage section 924, ifnecessary. Thus, the drawing processor 910 draws the object in a framebuffer 922 at high speed while performing a hidden-surface removal bythe use of a Z-buffer or the like, based on the object data and texture.The drawing processor 910 can also perform α-blending (or translucencyprocessing), mip-mapping, fogging, tri-linear filtering, anti-aliasing,shading and so on. As the image for one frame is written into the framebuffer 922, that image is displayed on a display 912.

[0140] A sound processor 930 includes any multi-channel ADPCM soundsource or the like to generate high-quality game sounds such as BGMS,sound effects and voices. The generated game sounds are outputted from aspeaker 932.

[0141] The operational data from a game controller 942, saved data froma memory card 944 and personal data may externally be transferredthrough a serial interface 940.

[0142] ROM 950 has stored a system program and so on. For an arcade gamesystem, the ROM 950 functions as an information storage medium in whichvarious programs have been stored. The ROM 950 may be replaced by anysuitable hard disk.

[0143] RAM 960 is used as a working area for various processors.

[0144] The DNA controller 970 controls the DMA transfer between theprocessors and memories (RAM, VRAM, ROM and the like).

[0145] The CD driver 980 drives a CD (information storage medium) 982 inwhich the programs, image data or sound data have been stored andenables these programs and data to be accessed.

[0146] The communication interface 990 is to perform data transferbetween the image generation system and any external instrument througha network. In such a case, the network connectable with thecommunication interface 990 may take any of communication lines (analogphone line or ISDN) or high speed serial interface bus. The use of thecommunication line enables the data transfer to be performed through theinternet. If the high-speed serial interface bus is used, the datatransfer may be carried out between the image generation system and anyother image generation system, any other game system or any informationprocessing instrument (such as personal computer, printer, mouse orkeyboard).

[0147] All the means of the present invention may be executed onlythrough hardware or only through a program which has been stored in aninformation storage medium or which is distributed through thecommunication interface. Alternatively, they may be executed boththrough the hardware and program.

[0148] If all the means of the present invention are executed boththrough the hardware and program, the information storage medium willhave stored a program (and data) for executing the means of the presentinvention through the hardware. More particularly, the aforementionedprogram instructs the respective processors 902, 904, 906, 910 and 930which are hardware and also delivers the data to them. if necessary.Each of the processors 902, 904, 906, 910 and 930 will execute thecorresponding one of the means of the present invention based on theinstruction and delivered data.

[0149]FIG. 13A shows an arcade game system to which this embodiment isapplied. Players enjoy a game by controlling levers 1102 and buttons1104 while viewing a game scene displayed on a display 1100. A systemboard (circuit board) 1106 included in the game system includes variousprocessor and memories which are mounted thereon. A program (and data)for executing all the means of the present invention has been stored ina memory 1108 on the system board 1106, which is an information storagemedium, Such information will be referred to “stored information” later.

[0150]FIG. 13B shows a home game apparatus to which this embodiment isapplied A player enjoys a game by manipulating game controllers 1202 and1204 while viewing a game picture displayed on a display 1200. In such acase, the aforementioned stored information pieces have been stored inDVD 1206 and memory cards 1208, 1209 which are detachable informationstorage media in the game system body.

[0151]FIG. 13C shows an example wherein this embodiment is applied to agame system which includes a host machine 1300 and terminals 1304-1 to1304-n connected to the host machine 1300 through a network (which is asmall-scale network such as LAN or a global network such as INTERNET)1302. In such a case, the above stored information pieces have beenstored in an information storage medium 1306 such as magnetic diskdevice, magnetic tape device, semiconductor memory or the like which canbe controlled by the host machine 1300, for example. If each of theterminals 1304-1 to 1304-n generates game images and game sounds in astand-alone manner, the host machine 1300 delivers the game program andother data for generating game images and game sounds to the terminals1304-1 to 1304-n. On the other hand, if the game images and soundscannot be generated by the terminals in the stand-alone manner, the hostmachine 1300 will generate the game images and sounds which are in turntransmitted to the terminals 1304-1 to 1304-n.

[0152] In the configuration of FIG. 13C, the means of the presentinvention maybe decentralized into the host machine (or server) andterminals. The above information pieces for implementing the respectivemeans of the present invention maybe distributed and stored into theinformation storage media of the host machine (or server) and terminals.

[0153] Each of the terminals connected to the network may be either ofhome or arcade type. When the arcade game systems are connected to thenetwork, it is desirable that each of the arcade game systems includes aportable information storage device (memory card or portable gamemachine) which can not only transmit the information between the arcadegame systems but also transmit the information between the arcade gamesystems and the home game systems.

[0154] The present invention is not limited to the things described inconnection with the above forms, but may be carried out in any ofvarious other forms.

[0155] For example, the invention relating to one of the dependentclaims may not contain part of the structural requirements in any claimto which the one dependent claim belongs. The primary part of theinvention defined by one of the independent claim may be belong to anyother independent claim.

[0156] Although this embodiment has been described as to the plate-like(or single or board) polygon as one simple object, the present inventionis not limited to such a form, but may be applied to a simple objectwhich is formed by a combination of polygons, for example.

[0157] The simple object is not limited to the polygon object, but maybe applied to an object constructed by any other primitive surfaces.

[0158] Although this embodiment has been described as to parallel lightrays, the present invention is not limited to this, but may be appliedto any other light source emitting radially extending rays.

[0159] A plurality of light sources may be used in the presentinvention. In this case, the present invention may be applied to each ofthe light sources to determine a final brightness or color.

[0160] Although this embodiment has been described as to the orientationof the plate like (or single or board) polygon being always parallel tothe line-of-sight direction, the present invention is not limited tosuch a case The brightness and color on the simple object may bedetermined based on the line-of-sight and light vectors even though theplate-like (or single or board) polygon is not parallel to theline-of-sight direction.

[0161] Other than the racing game, the present invention may similarlybe applied to any of various other games such as fighting games,shooting games, robot combat games, sports games, competitive games,role-playing games, music playing games, dancing games and so on.

[0162] Furthermore, the present invention can be applied to variousimage generation systems such as arcade game systems, home game systems,large-scaled multi-player attraction systems, simulators, Multimediaterminals, image generation systems, game image generation system boardsand so on.

1. An image generation system for generating an image, comprising: meanswhich performs a light-source simple processing, the processing beingnecessary to change at least one of the brightness and color of asurface of a simple object according to the amount of light that is sentfrom a light source and received by the surface of the simple object;and means which generates an image of the simple object based on aresult of the light-source simple processing.
 2. An image generationsystem for generating an image, comprising: means which performscomputation to obtain information relating to at least one of thebrightness and color of a primitive surface constructing a simpleobject, based on an incident angle of a light vector from a lightsource; and means which generates an image of the simple object based onthe information relating to at least one of the brightness and color ofthe primitive surface constructing the simple object.
 3. The imagegeneration system as defined in claim 1, wherein computation forobtaining information relating to at least one of the brightness andcolor of a primitive surface constructing the simple object is performedbased on an angle difference between a line-of-sight vector of a virtualcamera and a light vector from the light source.
 4. The image generationsystem as defined in claim 2, wherein computation for obtaining theinformation relating to at least one of the brightness and color of theprimitive surface constructing the simple object is performed based onan angle difference between a line-of-sight vector of a virtual cameraand a light vector from the light source.
 5. The image generation systemas defined in claim 3, wherein the angle difference is computed based ontwo-axis components in both the line-of-sight vector of the virtualcamera and the light vector from the light source.
 6. The imagegeneration system as defined in claim 4, wherein the angle difference iscomputed based on two-axis components in both the line-of-sight vectorof the virtual camera and the light vector from the light source.
 7. Theimage generation system as defined in claim 1, further comprising: meanswhich rotates the simple object such that a normal vector of primitivesurfaces constructing the simple object becomes parallel to aline-of-sight vector of a virtual camera.
 8. The image generation systemas defined in claim 2, further comprising: means which rotates thesimple object such that a normal vector of the primitive surfacesconstructing the simple object becomes parallel to a line-of-sightvector of a virtual camera.
 9. The image generation system as defined inclaim 1, wherein the light source is a source of parallel rays.
 10. Theimage generation system as defined in claim 2, wherein the light sourceis a source of parallel rays.
 11. The image generation system as definedin claim 1, wherein information relating to at least one of thebrightness and color of a primitive surface constructing one simpleobject among a plurality of simple objects is used to generate an imageof a primitive surface of another simple object among the plurality ofsimple objects.
 12. The image generation system as defined in claim 2,wherein the information relating to at least one of the brightness andcolor of a primitive surface constructing one simple object among aplurality of simple objects is used to generate an image of a primitivesurface of another simple object among the plurality of simple objects.13. The image generation system as defined in claim 1, wherein thesimple object or primitive surfaces constructing the simple object areset to have first and second color information; and wherein informationrelating to the color of the primitive surfaces is computed byinterpolation computation based on the first and second colorinformation and information relating to at least one of the brightnessand color of one of the primitive surfaces.
 14. The image generationsystem as defined in claim 2, wherein the simple object or the primitivesurfaces constructing the simple object are set to have first and secondcolor information; and wherein information relating to the color of theprimitive surfaces is computed by interpolation computation based on thefirst and second color information and information relating to at leastone of the brightness and color of one of the primitive surfaces.
 15. Animage generation system for generating an image, wherein a simple objector a primitive surface constructing the simple object are set to havefirst and second color information; and the image generation systemcomprising; means which computes color information of the primitivesurface by interpolation computation performed by using the first andsecond color information according to the amount of light that is sentfrom a light source and received by the primitive surface; and meanswhich generates an image of the simple object based on the colorinformation of the primitive surface.
 16. A computer-usable programembodied on an information storage medium or in a carrier wave, theprogram implementing on a computer: means which performs a light-sourcesimple processing, the processing being necessary to change at least oneof the brightness and color of a surface of a simple object according tothe amount of light that is sent from a light source and received by thesurface of the simple object; and means which generates an image of thesimple object based on a result of the light-source simple processing.17. A computer-usable program embodied on an information storage mediumor in a carrier wave, the program implementing on a computer: meanswhich performs computation to obtain information relating to at leastone of the brightness and color of a primitive surface constructing asimple object, based on an incident angle of a light vector from a lightsource; and means which generates an image of the simple object based onthe information relating to at least one of the brightness and color ofthe primitive surface constructing the simple object.
 18. The programembodied on an information storage medium or in a carrier wave asdefined in claim 16, wherein computation for obtaining informationrelating to at least one of the brightness and color of a primitivesurface constructing the simple object is performed based on an angledifference between a line of-sight vector of a virtual camera and alight vector from the light source.
 19. The program embodied on aninformation storage medium or in a carrier wave as defined in claim 17,wherein computation for obtaining the information relating to at leastone of the brightness and color of the primitive surface constructingthe simple object is performed based on an angle difference between aline-of-sight vector of a virtual camera and a light vector from thelight source.
 20. The program embodied on an information storage mediumor in a carrier wave as defined in claim 18, wherein the angledifference is computed based on two-axis components in both theline-of-sight vector of the virtual camera and the light vector from thelight source.
 21. The program embodied on an information storage mediumor in a carrier wave as defined in claim 19, wherein the angledifference is computed based on two-axis components in both theline-of-sight vector of the virtual camera and the light vector from thelight source.
 22. The program embodied on an information storage mediumor in a carrier wave as defined in claim 16, further implementing on thecomputer, means which rotates the simple object such that a normalvector of primitive surfaces constructing the simple object becomesparallel to a line-of-sight vector of a virtual camera.
 23. The programembodied on an information storage medium or in a carrier wave asdefined in claim 16, further implementing on the computer, means whichrotates the simple object such that a normal vector of the primitivesurfaces constructing the simple object becomes parallel to aline-of-sight vector of a virtual camera.
 24. The program embodied on aninformation storage medium or in a carrier wave as defined in claim 16,wherein the light source is a source of parallel rays.
 25. The programembodied on an information storage medium or in a carrier wave asdefined in claim 17 wherein the light source is a source of parallelrays.
 26. The program embodied on an information storage medium or in acarrier wave as defined in claim 16, wherein information relating to atleast one of the brightness and color of a primitive surfaceconstructing one simple object among a plurality of simple objects isused to generate an image of a primitive surface of another simpleobjects among the plurality of simple objects.
 27. The program embodiedon an information storage medium or in a carrier wave as defined inclaim 17, wherein the information relating to at least one of thebrightness and color of a primitive surface constructing one simpleobject among a plurality of simple objects is used to generate an imageof a primitive surface of another simple objects among the plurality ofsimple objects.
 28. The program embodied on an information storagemedium or in a carrier wave as defined in claim 16, wherein the simpleobject or primitive surfaces constructing the simple object are set tohave first and second color information; and wherein informationrelating to the color of the primitive surfaces is computed byinterpolation computation based on the first and second colorinformation and information relating to at least one of the brightnessand color of one of the primitive surfaces.
 29. The program embodied onan information storage medium or in a carrier wave as defined in claim17, wherein the simple object or the primitive surfaces constructing thesimple object are set to have first and second color information; andwherein information relating to the color of the primitive surfaces iscomputed by interpolation computation based on the first and secondcolor information and information relating to at least one of thebrightness and color of one of the primitive surfaces.
 30. Acomputer-usable program embodied on an information storage medium or ina carrier wave, wherein a simple object or a primitive surfaceconstructing the simple object are set to have first and second colorinformation; and the program implementing on a computer: means whichcomputes color information of the primitive surface by interpolationcomputation performed by using the first and second color informationaccording to the amount of light that is sent from a light source andreceived by the primitive surface; and means which generates an image ofthe simple object based on the color information of the primitivesurfaces.